{% extends "rules/base.html" %}
{% load bootstrap3 %}
{% block sidebar %}
    <div class="panel-heading">
        <h2 class="panel-title">
            {% if source %}
                {% if update %}
                    Source '{{ source.name }}'
                {% else %}
                    Edit Source '{{ source.name }}'
                {% endif %}
            {% else %}
                Add a Source
            {% endif %}
        </h2>
    </div>
{% endblock sidebar %}
{% block content %}
    {% if update %}
        {% include "rules/import_and_add_source.html" %}
    {% else %}
        <script language="JavaScript">
function display_field(method) {
    if ($( this ).find("option:selected").text() == "HTTP URL") {
        $("#id_uri").parents(".form-group").show(duration=200);
        $("#id_authkey").parents(".form-group").show(duration=200);
        $("#id_cert_verif").parents(".form-group").show(duration=200);
        $("#id_file").parents(".form-group").hide(duration=200);
        $('#id_use_sys_proxy').attr("checked", true);
        $('#id_use_sys_proxy').parent().show(duration=200);
    } else if ($( this ).find("option:selected").text() == "Upload") {
        $("#id_uri").parents(".form-group").hide(duration=200);
        $("#id_authkey").parents(".form-group").hide(duration=200);
        $("#id_cert_verif").parents(".form-group").hide(duration=200);
        $("#id_file").parents(".form-group").show(duration=200);
        $('#id_use_sys_proxy').attr("checked", false);
        $('#id_use_sys_proxy').parent().hide(duration=200);
    }
}

function display_warning(method) {
    if ($( this ).find("option:selected").text() == "Other content") {
        $("#name_warning").show(duration=200);
    } else {
        $("#name_warning").hide(duration=200);
    }
}

function hide_fields() {
    $("#id_method").change(display_field);
    $("#id_uri").parents(".form-group").hide(duration=200);
    $("#id_authkey").parents(".form-group").hide(duration=200);
    $("#id_file").parents(".form-group").hide(duration=200);
    $("#id_cert_verif").parents(".form-group").hide(duration=200);
    $("#name_warning").hide(duration=200);
    $("#id_method").change(display_field);
    $("#id_datatype").change(display_warning);
}

function select_fields() {
    if ($("#id_method").find("option:selected").text() == "HTTP URL") {
        $("#id_file").parents(".form-group").hide(duration=200);
        $("#id_uri").parents(".form-group").show(duration=200);
        $("#id_authkey").parents(".form-group").show(duration=200);
        $("#id_cert_verif").parents(".form-group").show(duration=200);
    } else if ($("#id_method").find("option:selected").text() == "Upload") {
        $("#id_uri").parents(".form-group").hide(duration=200);
        $("#id_authkey").parents(".form-group").hide(duration=200);
        $("#id_cert_verif").parents(".form-group").hide(duration=200);
        $("#id_file").parents(".form-group").show(duration=200);
    }
    if ($("#id_datatype").find("option:selected").text() == "Other content") {
        $("#name_warning").show(duration=200);
    } else {
        $("#name_warning").hide(duration=200);
    }

    $("#id_method").change(display_field);
    $("#id_datatype").change(display_warning);
}

function hide_threat_fields(src_type) {
    if (src_type === 'threat') {
        $('#id_use_iprep').attr("checked", false);
        $('#id_use_iprep').parent().hide(duration=200);
        $('#id_untrusted').attr("checked", false);
        $('#id_untrusted').closest('.form-group').hide(duration=200);
    } else {
        $('#id_use_iprep').attr("checked", true);
        $('#id_use_iprep').parent().show(duration=200);
        $('#id_untrusted').attr("checked", true);
        $('#id_untrusted').closest('.form-group').show(duration=200);
    }
}

$('document').ready(function() {
    hide_fields();
    select_fields();

    let src_type = {% if not source %}undefined{% else %}"{{ source.datatype }}"{% endif %};
    if (src_type !== undefined) {
        hide_threat_fields(src_type);
    }

    $('#id_datatype').change(function() {
        hide_threat_fields($(this).val());
    })

});
        </script>
        <div class="alert alert-warning" id="name_warning">
            Warning: the name will be file name in Suricata rules directory
        </div>
        {% if form %}
            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-6">
                        <form class="form" enctype="multipart/form-data" action={% if source %}"{% url 'edit_source'  source.pk %}"{% else %}"{% url 'add_source' %}"{% endif %} method="post">
                            {% csrf_token %}
                            {% bootstrap_form form %}
                            {% buttons %}
                                <button type="submit" class="btn btn-primary">{% bootstrap_icon "ok" %} Submit</button>
                            {% endbuttons %}
                        </form>
                    </div>
                </div>
            </div>
        {% endif %}
    {% endif %}
{% endblock content %}
